<?php
abstract class Database
{
    const PARAM_NULL = 0;
    const PARAM_INT  = 1;
    const PARAM_STR  = 2;
    const PARAM_LOB  = 3;
    const PARAM_STMT = 4;
    const PARAM_BOOL = 5;


    const FETCH_ASSOC = 2;
    const FETCH_NUM   = 3;
    const FETCH_BOTH  = 4;




    /**
     * Enthaelt den Datanbanklink
     *
     * @var PDO|Resource
     */
    protected $link = NULL;
    protected $prepared = '';




    /**
     * Bereitet eine Abfrage vor
     *
     * @param String $query
     */
    abstract public function prepare($query);
    /**
     * Gibt die Ergebnisse der Abfrage als Array zurueck
     *
     * @param unknown_type $type
     */
    abstract public function fetchAll($type = self::FETCH_ASSOC);
    /**
     * Schliesst den Cursor
     *
     */
    abstract public function free();
    /**
     * Bindet einen Wert an einen Platzhalter
     *
     * @param String $name
     * @param String $value
     * @param Integer $param
     */
    abstract public function bind($name,$value,$param);
    /**
     * Fuehrt den Query aus
     *
     */
    abstract public function execute();
    /**
     * Destruktor
     */
    abstract public function __destruct();
    /**
     * Liefert die zuletzt gesetzte auto-increment ID
     */
    abstract public function lastInsertId();




}
?>